about proc uses ebx edi esi hwnd:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
	LOCAL @str[512]:BYTE
	.if uMsg==WM_INITDIALOG
		invoke LoadIcon,hModuleHandle,app
		mov ebx,eax
		invoke SendMessage,hwnd,WM_SETICON,ICON_BIG,ebx
		invoke SendDlgItemMessage,hwnd,IDC_IMG1,STM_SETICON,ebx,NULL
	.elseif uMsg==WM_COMMAND
		xor eax,eax
		mov eax,wParam
		and eax,0ffffh
		.if eax==IDC_BTN1
			invoke ShowWindow,hwnd,SW_HIDE
		.endif
	.elseif uMsg==WM_NOTIFY
		mov edx,lParam
		assume edx:ptr NMLINK
		cmp [edx].hdr.code,NM_CLICK
		jnz skip
		jz @F
		cmp [edx].hdr.code,NM_RETURN
		jnz skip
		@@:
		.if [edx].hdr.idFrom==IDC_LNK1
			.if [edx].litem.iLink==0
				invoke ShellExecute,NULL,addr szAboutOpen,addr szAboutUrl,NULL,NULL,SW_MAXIMIZE
			.elseif [edx].litem.iLink==1
				invoke ShellExecute,NULL,addr szAboutOpen,addr szAboutMail,NULL,NULL,SW_MAXIMIZE
			.endif 
			;invoke ShellExecute,NULL,addr szOpen,addr szAboutUrl,NULL,NULL,SW_MAXIMIZE
		.endif
		skip:
		 assume edx:nothing
		;invoke ShowWindow,hwnd,SW_HIDE
	.elseif uMsg==WM_CLOSE
		invoke ShowWindow,hwnd,SW_HIDE
	.else
		mov eax,FALSE
		ret
	.endif
	mov eax,TRUE
	ret
about endp